Red Hat System Administration II 8.2

Сжатие и дедупликация хранилища с помощью VDO

Задачи

После завершения этого раздела вы сможете сжимать и дедуплицировать данные на запоминающих устройствах с помощью VDO для оптимизации использования хранилища.

Оптимизатор виртуальных данных

В Red Hat Enterprise Linux 8 входит драйвер оптимизатора виртуальных данных (Virtual Data Optimizer, VDO), который оптимизирует объем данных на блочных устройствах. VDO — это драйвер модуля сопоставления устройств Linux, который сокращает использование дискового пространства на блочных устройствах и минимизирует репликацию данных, экономя место на диске и повышая скорость передачи данных. VDO содержит два модуля ядра: kvdo для прозрачного управления сжатием данных и UDS для дедупликации.

Уровень VDO размещается поверх существующего блочного запоминающего устройства, например устройства RAID или локального диска. Эти блочные устройства также могут быть зашифрованными. Уровни хранилища, например логические тома LVM и файловые системы, размещаются поверх устройства VDO. На следующей диаграмме показано расположение VDO в инфраструктуре, состоящей из виртуальных машин KVM, которые используют оптимизированные запоминающие устройства.

Рисунок 8.2: Виртуальные машины на основе VDO

VDO уменьшает объем данных на запоминающих устройствах в три этапа.

  1. Устранение нулевых блоков. Этот процесс отфильтровывает блоки данных, содержащие только нули (0), и записывает информацию о таких блоках только в метаданные. Ненулевые блоки данных затем передаются на следующий этап обработки. На этом этапе в устройствах VDO активируется функция динамического выделения места.

  2. Дедупликация. Этот процесс убирает избыточные блоки данных. Когда вы создаете несколько копий одних и тех же данных, VDO выявляет дублирующиеся блоки данных и обновляет метаданные, чтобы использовать эти дубликаты как ссылки на исходный блок и не создавать избыточных блоков. Модуль ядра универсальной службы дедупликации (Universal Deduplication Service, UDS) проверяет избыточность данных по своим метаданным. Этот модуль ядра поставляется вместе с VDO.

  3. Сжатие. Модуль ядра kvdo сжимает блоки данных с использованием алгоритма LZ4 и группирует их в блоки размером 4 КБ.

Применение VDO

Логические устройства, создаваемые с помощью VDO, называются томами VDO. Тома VDO похожи на разделы диска: можно форматировать тома под нужный тип файловой системы и монтировать как обычную файловую систему. Том VDO можно использовать как физический том LVM.

Чтобы создать том VDO, необходимо указать блочное устройство и имя логического устройства, по которому пользователь будет его опознавать. При желании можно указать логический размер тома VDO. Логический размер может превышать физический размер фактического блочного устройства.

Поскольку к томам VDO применяется динамическое выделение места, пользователи видят только используемое логическое пространство и не знают о фактически доступном физическом пространстве. Если при создании тома не указать логический размер, VDO примет за него фактический физический размер. Соотношение 1:1 для логического и физического размеров способствует повышению производительности, но при этом пространство хранилища используется менее эффективно. В зависимости от потребностей инфраструктуры необходимо выбрать, что приоритетнее ― производительность или эффективное использование пространства.

Если логический размер тома VDO превышает фактический физический размер, необходимо отслеживать фактическое использование тома с помощью команды vdostats --verbose.

Включение VDO

Установите пакеты VDO и kmod-kvdo, чтобы включить VDO в системе.

[root@host ~]# yum install vdo kmod-kvdo
...output omitted...
Is this ok [y/N]: y
...output omitted...
Complete!

Создание тома VDO

Используйте команду vdo create, чтобы создать том VDO.

[root@host ~]# vdo create --name=vdo1 --device=/dev/vdd --vdoLogicalSize=50G
...output omitted...

Если не указать логический размер, том VDO получит размер его физического устройства.

После создания тома VDO можно отформатировать его под нужный тип файловой системы и смонтировать в иерархию файловой системы своей машины.

Анализ тома VDO

Используйте команду vdo status для анализа тома VDO. Эта команда отображает отчет о системе VDO и статусе тома VDO в формате YAML. Она также показывает атрибуты тома VDO. Используйте опцию --name=, чтобы указать имя конкретного тома. Если опустить имя тома, в выводе команды vdo status будет показан статус всех томов VDO.

[root@host ~]# vdo status --name=vdo1
...output omitted...

Команда vdo list отображает список запущенных томов VDO. Вы можете запускать и останавливать тома VDO с помощью команд vdo start и vdo stop соответственно.

Ссылки

Дополнительную информацию см. в главе Getting started with VDO руководства Red Hat Enterprise Linux 8 Deduplicating and Compressing Storage Guide: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/deduplicating_and_compressing_storage/

Знакомство с VDO